1. Field of the Invention
The invention relates generally to iterative error correction code (ECC) decoders and, more particularly, to systems and methods for determining bit error rates associated with the iterative ECC decoding.
2. Background Information
Many applications utilize error correction codes (ECCs) to protect data prior to transmitting or storing the data. Data storage systems traditionally use Reed-Solomon is codes, which operate in a pipelined fashion to encode the data quickly and reliably. The data storage systems manipulate the data in the form of multiple bit data symbols in accordance with the Reed-Solomon codes to produce ECC redundancy symbols. The ECC redundancy symbols are then concatenated with the data symbols to form code words, which are written to, for example, the sectors of a disk.
To retrieve the stored data, a disk drive reads the code word from the disk sector and decodes the code word in accordance with the Reed-Solomon code that was used to encode the data. The system thus encodes the retrieved code word data symbols and generates redundancy symbols. The system then manipulates the generated redundancy symbols and the retrieved code word redundancy symbols to produce associated error syndromes and report the number of code word symbols that contain errors. Assuming the number of erroneous symbols is within the error correction capability of the code, the system manipulates the error syndromes to correct the symbols. If the number of erroneous symbols exceeds the error correction capability of the code, the code word may be re-read from the sector and again decoded one or more times. Generally, various known techniques are used in attempts to acquire a better or stronger read signal from the disk, and thus, more accurate detection of the recorded data. If the attempts at decoding fail, however, the data are lost.
The errors in the code word symbols may be caused by a degradation in the disk surface, which results in a corruption of the read-back signal. To avoid losing data, the disk drive typically monitors the health of the disk surface by keeping track of the number of symbols with errors for a given sector. The number of symbols with errors is a metric that is available directly from the Reed Solomon decoding. If this metric has a rising trend, it indicates that the disk surface at the sector is most likely degrading. When the number of symbols with errors for a given sector rises to exceed a predetermined threshold, the disk drive “re-vectors” the data, that is, the disk drive stores the code word in a different location on the disk. The pre-determined threshold is selected to be sufficiently below the error correction capability of the ECC, to ensure that the data are re-vectored before the degradation results in the loss of the data.
Iterative ECCs, such as low density parity check (LDPC) codes, provide improved performance over traditional Reed Solomon codes for disk drive applications. However, there has been a reluctance to adopt the LDPC codes. This is due, in part, to the increased complexity of the LDPC encoding/decoding systems and also to the differences in operating characteristics of the iterative codes versus the traditional Reed-Solomon codes. The widely-used and time tested metric for monitoring the health of the disk surface, namely, the number of symbols with errors per sector, is not reported from the iterative ECC decoding operations. Instead, the iterative LDPC codes have as a metric the number of iterations performed until convergence.
Accordingly, to help alleviate the reluctance to using iterative ECC decoding, what is needed is a mechanism that produces for the iterative decoding a metric that corresponds to the known metric of the number of symbols with errors that is used by applications that employ the traditional Reed-Solomon ECC decoding.